package com.cskaoyan.tcp.edition1;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

/*
        实现基于tcp协议的数据发送端代码
        1. 建立客户端的Socket服务,并明确要连接的服务器。
            Socket: 此类实现客户端套接字

          Socket(String host, int port)
            创建一个流套接字并将其 连接到 指定主机上 的指定端口号
            a. 这里的host， port，要连接的服务器端的ip地址和端口号
            b. 创建出的Socket对象本身，默认绑定本机ip，绑定一个随机端口
          参数：
            host - 主机名，或者为 null，表示回送地址(127.0.0.1)。
            port - 端口号。

        2.如果对象建立成功，就表明已经建立了数据传输的通道.就可以在该通道通过IO进行数据的接收和发送
        3.根据需要从socket对象中获取输入，或输出流
        4.向流中读取或写入数据
        5.释放资源

        注意事项:
           虽然我们可以从Socket中获取流对象，但是Socket中流对象，Socket自己会负责关闭

 */
public class Client {

    public static void main(String[] args) throws IOException {

        // 创建套接字对象
        Socket socket = new Socket("localhost", 5678);

        // 获取连接中流，利用流发送数据
        OutputStream out = socket.getOutputStream();

        // 发送数据
        String data = "hello, tcp";
        out.write(data.getBytes());

        // 关闭socket
        socket.close();

    }
}
